<?php
App::uses('AppController', 'Controller');
/**
 * Eventos Controller
 *
 * @property Evento $Evento
 */
class EventosController extends AppController {
            
    public function beforeFilter()
    {
        parent::beforeFilter(); 
        $this->Auth->allow('agenda');
       
    }
/**
 * index method
 *
 * @return void
 */
		public function index() {
            
             
           $role = $this->Session->read('Auth.User.role_id');
           
            if($role == 1){
         $this->Evento->recursive = 0;
		$this->set('eventos', $this->paginate());
                
                
                 $this->Filter->addFilters('filter1');
    
    // Define conditions
    $this->Filter->setPaginate('conditions', $this->Filter->getConditions());

    $this->Evento->recursive = 0;
    $this->set('eventos', $this->paginate());
   
    
    $this->Filter->setPaginate('order', 'Evento.nomeEvento ASC'); // optional
    $this->Filter->setPaginate('limit', 10);              // optional

    // Define conditions
    $this->Filter->setPaginate('conditions', $this->Filter->getConditions());

    $this->Evento->recursive = 0;
    $this->set('eventos', $this->paginate());
                
                
            }
                
             else{
                
            
                         $idpromoter = $this->Session->read('Auth.User.id');
		$this->Evento->recursive = 0;
		

		 $options = array(
			'fields' => array('*'),
                        'conditions' =>  array( 'Evento.usuario_Id' =>$idpromoter));

		$this->paginate = $options;

               
               
            

		// Roda a consulta, já trazendo os resultados paginados
		$eventos = $this->paginate('Evento');

		// Envia os dados pra view
		$this->set('eventos', $eventos);
                
                
                
  $this->Filter->addFilters('filter1');
    
    // Define conditions
   
    // Define conditions
   // $this->Filter->setPaginate('conditions', $this->Filter->getConditions());

    $this->Evento->recursive = 0;
    $this->set('eventos', $this->paginate('Evento'));
   
                
           }
       
                }
        
        
        //Visualizar eventos aprovados na Agenda
        public function agenda($id = null) {
 
		
              
              
  if('Evento.aprovar' == '1'){       
          
          
          $this->Evento->recursive = 0;
		           
		$options = array(
			'fields' => array('*'),
			'conditions' => array('Evento.aprovar' =>1));

		$this->paginate = $options;

		// Roda a consulta, já trazendo os resultados paginados
		$eventos = $this->paginate('Evento');

		// Envia os dados pra view
		$this->set('eventos', $eventos);
                 // Adiciona filtro
    $this->Filter->addFilters('filter1');
    
    // Define conditions
    $this->Filter->setPaginate('conditions', $this->Filter->getConditions());

    $this->Evento->recursive = 0;
    $this->set('eventos', $this->paginate());
   
    
 

    $this->Evento->recursive = 0;
    $this->set('eventos', $this->paginate());
      }
      else
      {
          $this->Evento->recursive = 0;
		           
		$options = array(
			'fields' => array('*'),
			'conditions' => array('Evento.aprovar' =>1));

		$this->paginate = $options;

		// Roda a consulta, já trazendo os resultados paginados
		$eventos = $this->paginate('Evento');

		// Envia os dados pra view
		$this->set('eventos', $eventos);
                 // Adiciona filtro
   
    
          
   $this->Filter->addFilters('filter1');
     $this->set('eventos', $this->paginate());
    // Define conditions
//$this->Filter->setPaginate('conditions',$this->Filter->getConditions());

    //$this->Evento->recursive = 0;
   $this->set('eventos', $this->paginate());
   

    

   
      }
                
                
	}
       
     

/**
 * view method
 *
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
 
	public function view($id = null) {
		$this->Evento->id = $id;
		if (!$this->Evento->exists()) {
			throw new NotFoundException(__('Invalid evento'));
		}
       
		$this->set('evento', $this->Evento->read(null, $id));
	}

/**
 * add method
 *
 * @return void
 */
	public function add() {
		if ($this->request->is('post')) {
			$this->Evento->create();
                        
                       // print_r($this->request->data);
			if ($this->Evento->save($this->request->data)) {
				$this->Session->setFlash(__('<center><h3> * Evento cadastrado com sucesso !</h3></center>!'));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('<center> <h3> * O evento nao pode ser salvo ou falta preencher algum campo . Por favor, tente novamete.</h3></center>'));
			}
		}
	}

/**
 * edit method
 *
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
	public function edit($id = null) {
		$this->Evento->id = $id;
		if (!$this->Evento->exists()) {
			throw new NotFoundException(__('Invalid evento'));
		}
		if ($this->request->is('post') || $this->request->is('put')) {
			if ($this->Evento->save($this->request->data)) {
				$this->Session->setFlash(__('<center><h3> * Evento alterado com sucesso!</h3></center>'));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('<center><h3> * O evento nao pode ser alterado. Por favor, tente novamete!</h3></center>'));
			}
		} else {
			$this->request->data = $this->Evento->read(null, $id);
		}
	}

 //Aprovar Evento
        
        public function aprovar($id = null) {
		$this->Evento->id = $id;
		if (!$this->Evento->exists()) {
			throw new NotFoundException(__('Invalid evento'));
		}
		if ($this->request->is('post') || $this->request->is('put')) {
			if ($this->Evento->save($this->request->data)) {
				$this->Session->setFlash(__('<center><h3> * Evento aprovado com sucesso!</h3></center>'));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('<center><h3> * O evento nao pode ser aprovado. Por favor, tente novamete!</h3></center>*'));
			}
		} else {
			$this->request->data = $this->Evento->read(null, $id);
		}
	}

        
        
        
/**
 * delete method
 *
 * @throws MethodNotAllowedException
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
	public function delete($id = null) {
		if (!$this->request->is('post')) {
			throw new MethodNotAllowedException();
		}
		$this->Evento->id = $id;
		if (!$this->Evento->exists()) {
			throw new NotFoundException(__('Invalid evento'));
		}
		if ($this->Evento->delete()) {
			$this->Session->setFlash(__('<h3><center>* Evento deletado com sucesso</h3></center>*'));
			$this->redirect(array('action' => 'index'));
		}
		$this->Session->setFlash(__('<h3><center>* Evento não pode ser deletado</h3></center>*'));
		$this->redirect(array('action' => 'index'));
	}
}
